Modelling Requirement Engineering
Recognizing Multiple viewpoint
Collaborative Requirement Gathering
Building the requirements model
Negotiation is a crucial aspect of software development, especially when it comes to defining project requirements. Let's dive into the art of negotiation using a simple example involving Lisa, a marketing manager, and Doug, a software engineering manager, who are discussing the features of a home security system called SafeHome.
Lisa wants the SafeHome system to include Internet access as it adds a "gee whiz" appeal and is essential for their marketing campaign. However, Doug is concerned about meeting the deadline with the resources available. Let's see how they negotiate to find a solution.
Example: Lisa acknowledges Doug's concerns about resources, and Doug recognizes the importance of Internet access for the marketing campaign.
Example: Lisa wants Internet access for marketing purposes, while Doug prioritizes meeting the deadline and ensuring system security.
Example: Lisa listens to Doug's explanation about resource constraints and considers its implications on the project timeline.
Example: Lisa emphasizes the importance of Internet access for marketing, while Doug highlights the need for security and resource allocation.
Example: Lisa and Doug discuss the project requirements professionally, without making it personal.
Example: Lisa suggests prioritizing Internet access for the first release while deferring additional functionality to subsequent releases.
Example: Lisa agrees to prioritize Internet access for the first release, understanding the constraints Doug faces.
Through effective negotiation, Lisa and Doug can find a solution that meets both their needs. By understanding each other's concerns, listening actively, and being open to compromise, they can achieve a win-win outcome where SafeHome meets its marketing goals while staying within budget and timeline constraints.
Negotiation is a collaborative process aimed at finding mutually beneficial solutions. By following negotiation best practices, stakeholders can address conflicts, prioritize requirements, and move forward with confidence in their project's success.
Software refers to the set of programs, data, and instructions that enable computers to perform specific tasks or functions. It encompasses applications, operating systems, and utilities designed to fulfill user needs, enhancing productivity, communication, entertainment, and virtually all aspects of modern life through computational processes and data manipulation.
Software Engineering is the disciplined application of principles, methods, and tools to develop, test, deploy, and maintain high-quality software systems. It involves systematic approaches to problem-solving, project management, and teamwork, aiming to meet user needs efficiently while adhering to standards and best practices throughout the software development lifecycle.